python: sort a list of dictionaries by a value | 您所在的位置:网站首页 › python 排序key › python: sort a list of dictionaries by a value |
list에 담긴 json 형태의 dictionary 들을 특정 value에 따라 정렬을 해야할 때가 있습니다.
python 내장함수인 operator를 활용하면 아주 용이하게 할 수 있습니다. import operator list_of_dict = [ {'id': 1, 'name': 'Kim', 'age':10}, {'id': 2, 'name': 'Ju', 'age':30}, {'id': 3, 'name': 'Jang', 'age':20}, ] list_of_dict.sort(key=operator.itemgetter('name')) print(list_of_dict) list_of_dict.sort(key=operator.itemgetter('age')) print(list_of_dict) list_of_dict.sort(key=operator.itemgetter('id'), reverse=True) print(list_of_dict) [{'id': 3, 'name': 'Jang', 'age': 20}, {'id': 2, 'name': 'Ju', 'age': 30}, {'id': 1, 'name': 'Kim', 'age': 10}] [{'id': 1, 'name': 'Kim', 'age': 10}, {'id': 3, 'name': 'Jang', 'age': 20}, {'id': 2, 'name': 'Ju', 'age': 30}] [{'id': 3, 'name': 'Jang', 'age': 20}, {'id': 2, 'name': 'Ju', 'age': 30}, {'id': 1, 'name': 'Kim', 'age': 10}]
* 주의 sort()의 경우 return 값이 별도로 없고 sort()한 list가 직접 정렬이 적용됩니다. import operator list_of_dict = [ {'id': 1, 'name': 'Kim', 'age':10}, {'id': 2, 'name': 'Ju', 'age':30}, {'id': 3, 'name': 'Jang', 'age':20}, ] new_list = list_of_dict.sort(key=operator.itemgetter('name')) print(new_list) print(list_of_dict) None [{'id': 3, 'name': 'Jang', 'age': 20}, {'id': 2, 'name': 'Ju', 'age': 30}, {'id': 1, 'name': 'Kim', 'age': 10}]위와 같이 변수를 sort() 한 후 변수로 값을 주려고 하면 None이 됩니다. |
CopyRight 2018-2019 实验室设备网 版权所有 |